package cn.iocoder.yudao.module.reading.controller.admin.bookset.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
 * 管理后台 - 绘本集创建 Request VO
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 - 绘本集创建 Request VO")
@Data
public class BookSetCreateReqVO {

    @Schema(description = "绘本集标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "牛津阅读树第一级")
    @NotBlank(message = "绘本集标题不能为空")
    @Size(max = 200, message = "绘本集标题长度不能超过200个字符")
    private String title;

    @Schema(description = "封面图片URL", example = "https://example.com/cover.jpg")
    private String cover;

    @Schema(description = "绘本集描述", example = "适合英语启蒙的经典绘本集")
    @Size(max = 1000, message = "绘本集描述长度不能超过1000个字符")
    private String description;

    @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "分类ID不能为空")
    private Long categoryId;

    @Schema(description = "适龄范围", example = "3-6岁")
    @Size(max = 20, message = "适龄范围长度不能超过20个字符")
    private String ageRange;

    @Schema(description = "来源标签", example = "牛津大学出版社")
    @Size(max = 100, message = "来源标签长度不能超过100个字符")
    private String source;

    @Schema(description = "难度级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "beginner")
    @NotBlank(message = "难度级别不能为空")
    private String difficultyLevel;

    @Schema(description = "语言类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "en")
    @NotBlank(message = "语言类型不能为空")
    private String language;

    @Schema(description = "是否推荐", example = "true")
    private Boolean isRecommended = false;

    @Schema(description = "是否启用", example = "true")
    private Boolean isActive = true;

}
